package com.xiaoai.io.bio6_chat_demo;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

/**
 * bio模式下端口转发思想-服务端
 *
 * 服务端实现的盂求:
 * 1、注册端口
 * 2、接收客户端的socket连接，交给一个独立的线程来处理。
 * 3、把当前连接的客户端socket存入到一个所谓的在线socket集合中保存
 * 4、接收客户端的消息，然后推送给当前所有在线soket接收
 *
 * @Author
 * @Date 2021-09-06 23:35
 */
public class Server {
    public static List<Socket> allSocketOnLine = new ArrayList<>();
    public static void main(String[] args){
        System.out.println("=====服务端启动：端口转发=====");
        ServerSocket ss = null;
        try {
            ss = new ServerSocket(8888);
            while (true){
                Socket socket = ss.accept();
                // 登录客户端添加到列表中
                System.out.println("["+socket.toString()+"]上线...");
                allSocketOnLine.add(socket);
                new ServerReaderThread(socket).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
